#include <bits/stdc++.h>
using namespace std;
int n, tot = 1, sum, fr[200005];
int lfr[200005], rfr[200005];
int vis[20005];
int main() {
	freopen("fruit.in", "r", stdin);
	freopen("fruit.out", "w", stdout);
	cin >> n;
	sum = n;
	rfr[0] = 1;
	for (int i = 1; i <= n; ++i) {
		scanf("%d", &fr[i]);
		lfr[i] = i - 1, rfr[i] = i + 1;
	}
	while (sum > 0) {
		int tim = 1;
		for (int i = 0; i <= n; i = rfr[i]) {
			if (i == 0) continue;
			if (fr[lfr[i]] != fr[i]) {
				printf("%d ", i);
				--sum;
				vis[i] = tim;
			}
		}
		for (int i = 0; i <= n; i = rfr[i]) {
			if (i == 0) continue;
			if (vis[i] == tim) {
				rfr[lfr[i]] = rfr[i];
				lfr[rfr[i]] = lfr[i];
			}
		}
		printf("\n");
		++tim;
	}
//	a[1] = 1, head[1] = 1, cnt[1] = 1;
//	l[1] = 0, r[0] = 1, r[n] = n + 1;
//	for (int i = 2; i <= n; ++i) {
//		if (fr[i] == fr[i - 1]) {
//			a[i] = a[i - 1];
//			++cnt[a[i]];
//		}
//		else {
//			a[i] = a[i - 1] + 1;
//			++cnt[a[i]];
//			head[a[i]] = i;
//			++tot;
//			r[tot - 1] = tot;
//			l[tot] = tot - 1;
//		}
//	}
////	for (int i = 1; i <= tot; ++i) printf("%d ", head[i]);
////	printf("\n");
//	while (sum > 0) {
//		for (int i = 1; i <= tot; ++i) {
////			printf("%d ", i);
//			if (cnt[i] == 0) continue;
//			printf("%d ", head[i]);
//			int tmp = head[i];
//			head[i] = rfr[tmp];
//			rfr[lfr[tmp]] = lfr[tmp];
//			lfr[rfr[tmp]] = rfr[tmp];
//			--sum;		
//		}
//		printf("\n");
//		for (int i = 1; i <= tot; ++i) {
////			printf("%d ", i);
//			if (cnt[i] == 0) continue;
////			printf("%d ", head[i]);
//			--cnt[i];
//			if (cnt[i] != 0) ;
//			else {
//				if (cnt[l[i]] == 0) continue;
//				cnt[r[i]] += cnt[l[i]];
//				cnt[l[i]] = 0;
//				rfr[lfr[head[i]]] = rfr[head[i]];
//				lfr[rfr[head[i]]] = lfr[head[i]];
//				head[r[i]] = head[l[i]];
//				r[l[l[i]]] = r[i];
//				l[r[i]] = l[l[i]];
//				l[l[i]] = -1;
//				r[i] = r[l[i]] = -1;
//				l[i] = -1;
//			}		
//		}
//	}	
	return 0;
}
